using System;
using System.Security.Principal;
using System.Collections.Generic;
using System.Collections;

namespace Microsoft.ConnectionEngine.Common.Security
{
 
    // [System.Xml.Serialization.XmlRootAttribute(Namespace = "http://Microsoft.ConnectionEngine/Schemas/ServiceProviderRegister")]
    /// <summary>
    /// HSDIdentity class
    /// </summary>
    public class HSDIdentity: GenericIdentity
    {
        private string _name = string.Empty;
        /// <summary>
        /// Name 
        /// </summary>
        public new string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        private string _password = string.Empty;
        /// <summary>
        /// Password
        /// </summary>
        public string Password
        {
            get { return _password; }
            set { _password = value; }
        }

        //Work Item ID: 65
        //Modified By: SachinJo
        //Commented the private field as it's never used.
        //private bool _isAuthenticated;
        /// <summary>
        /// IsAuthenticated
        /// </summary>
        public new bool IsAuthenticated
        {
            get
            { return base.IsAuthenticated; }
            set { }
        }

        private string _userId;
        /// <summary>
        /// User ID
        /// </summary>
        public string UserId
        {
            get { return _userId; }
            set { _userId = value; }
        }

        private String _hcuid;
        /// <summary>
        /// HCU ID
        /// </summary>
        public string HCUID
        {
            get { return _hcuid; }
            set { _hcuid = value; }
        }

        //list of providers that the user can belong to - if the user is in role providers
        //private List<HealthcareServiceProvider> _providers;
        //public List<HealthcareServiceProvider> ServicerProviderList
        //{
        //    get
        //    {
        //        return _providers;
        //    }
        //    set
        //    {
        //        _providers = value;
        //    }
        //}
        private string _providerId;
        /// <summary>
        /// Provider ID
        /// </summary>
        public string ProviderID
        {
            get { return _providerId; }
            set { _providerId = value; }
        }
        /// <summary>
        /// Default Constructor
        /// </summary>

        public HSDIdentity(): 
            base(string.Empty)
        {
        }
        /// <summary>
        /// Parameterised Constructor
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="name"></param>
        /// <param name="password"></param>
        public HSDIdentity(string userId, string name, string password)
            : base(name)
        {
            _name = name;
            _password = password;
            _userId = userId;
        }
        /// <summary>
        /// Overloaded Constructor
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="name"></param>
        /// <param name="password"></param>
        /// <param name="hcuid"></param>
        /// <param name="providerId"></param>
        public HSDIdentity(string userId, string name, string password, string hcuid, string providerId)
            : this(userId, name, password)
        {            
            _hcuid = hcuid;
            _providerId = providerId;            
        }

        //public HSDIdentity(Guid userId, string name, string type)
        //    : base(name, type)
        //{
        //    _userId = userId;
        //    _name = name;
        //}
      

    }
}
